package com.wicket.okrcomponent.integration.dto;

import com.wicket.okrcomponent.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc QueryClassMatchResultToAnswerDetailComRespDto
 * @使用场景
 */
@Data
public class QueryClassMatchResultToAnswerDetailComRespDto
  extends BaseDto
  implements Serializable {

  /**
   * 配置方案ID
   */
  @ApiModelProperty("配置方案ID ")
  private String confSchemeId;

  /**
   * 冗余业务场景标识
   */
  @ApiModelProperty("冗余业务场景标识")
  private String bizSceneCode;

  /**
   * 冗余评价主题类型
   */
  @ApiModelProperty("冗余评价主题类型")
  private String evaluationSubjectTypeCode;

  /**
   * 冗余开启OKR场景
   */
  @ApiModelProperty("冗余开启OKR场景")
  private String isOkrPlanScene;

  /**
   * 冗余评价模板类型
   */
  @ApiModelProperty("冗余评价模板类型")
  private String evaluationTemplateTypeCode;

  /**
   * 父周期周期类型
   */
  @ApiModelProperty("父周期周期类型")
  private String fatherCycleType;

  /**
   * 周期类型
   */
  @ApiModelProperty("周期类型")
  private String cycleType;

  /**
   * 父周期子周期数量
   */
  @ApiModelProperty("父周期子周期数量")
  private Long fatherSubcycleQuantity;

  /**
   * 中期周期类型
   */
  @ApiModelProperty("中期周期类型")
  private String midCycleType;

  /**
   * 中期子周期数量
   */
  @ApiModelProperty("中期子周期数量")
  private Long midSubcycleQuantity;

  /**
   * 子周期周期类型
   */
  @ApiModelProperty("子周期周期类型")
  private String subcycleType;

  /**
   * 单周期周期类型
   */
  @ApiModelProperty("单周期周期类型")
  private String monocycleCycleType;

  /**
   * 冗余目标规划模板子类型
   */
  @ApiModelProperty("冗余目标规划模板子类型")
  private String targetPlanTempSubtype;

  /**
   * 规划类型 GENERAL_PLANNING:常规规划 THEMATIC_PLANNING:专题规划
   */
  @ApiModelProperty("规划类型")
  private String planningType;

  /**
   * 是否开启中期 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启中期")
  private String openMidCycle;

  /**
   * 周期模式 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
   */
  @ApiModelProperty("周期模式")
  private String cycleMode;

  /**
   * 是否开启评价工作 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启评价工作")
  private String isOpenEvaWork;

  /**
   * 五年周期配置标识
   */
  @ApiModelProperty("五年周期配置标识")
  private String fiveYear;

  /**
   * 三年周期配置标识
   */
  @ApiModelProperty("三年周期配置标识")
  private String threeYear;

  /**
   * 年周期配置标识
   */
  @ApiModelProperty("年周期配置标识")
  private String year;

  /**
   * 半年周期配置标识
   */
  @ApiModelProperty("半年周期配置标识")
  private String halfYear;

  /**
   * 季度周期配置标识
   */
  @ApiModelProperty("季度周期配置标识")
  private String quarter;

  /**
   * 双月周期配置标识
   */
  @ApiModelProperty("双月周期配置标识")
  private String doubleMonths;

  /**
   * 月周期配置标识
   */
  @ApiModelProperty("月周期配置标识")
  private String month;

  /**
   * 开启创建业务应用标识
   */
  @ApiModelProperty("开启创建业务应用标识")
  private String openCreateBizAppCode;

  /**
   * 是否开启规划方案类别 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启规划方案类别")
  private String isOpenPlanSchemeClass;

  /**
   * 周期体系类型标识 YEAR:自然年 SCHOOL_YEAR:学年
   */
  @ApiModelProperty("周期体系类型标识")
  private String cycleSystemCode;

  /**
   * 是否开启填报工作 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启填报工作")
  private String isOpenFillWork;

  /**
   * 规划方案类别 MASTER_PLAN:总规划 SUB_PLAN:分规划 LITTLE_PLAN:子规划
   */
  @ApiModelProperty("规划方案类别")
  private String planSchemeClass;

  /**
   * 时段计算参照时间
   */
  @ApiModelProperty("时段计算参照时间")
  private Long timeCountReferTime;

  /**
   * 时段规则设置级别 EVA_TEMP_LEVEL:评价模板级 CYCLE_TYPE_LEVEL:周期类型级 UNLIMITED:不限
   */
  @ApiModelProperty("时段规则设置级别")
  private String timeRulesSetLevel;

  /**
   * 填报时段规则标识
   */
  @ApiModelProperty("填报时段规则标识")
  private String fillTimeRulesCode;

  /**
   * 评价时段规则标识
   */
  @ApiModelProperty("评价时段规则标识")
  private String evaTimeRulesCode;

  /**
   * 空间组织架构模式
   */
  @ApiModelProperty("空间组织架构模式")
  private String orgStructureModel;

  /**
   * 是否开启系统对接
   */
  @ApiModelProperty("是否开启系统对接")
  private String isIntergration;

  /**
   * 是否允许导入
   */
  @ApiModelProperty("是否允许导入")
  private String isAllowImport;

  /**
   * 是否启用流程审批
   */
  @ApiModelProperty("是否启用流程审批")
  private String isOpenApprovalProcess;

  /**
   * 是否开启多组织
   */
  @ApiModelProperty("是否开启多组织")
  private String openManyOrg;

  /**
   * 是否开启短信验证服务
   */
  @ApiModelProperty("是否开启短信验证服务")
  private String isOpenSmsService;

  /**
   * 是否使用平台短信验证服务
   */
  @ApiModelProperty("是否使用平台短信验证服务")
  private String isUsePlatformSmsService;

  /**
   * AccessKeyID
   */
  @ApiModelProperty("AccessKey ID")
  private String accessKeyId;

  /**
   * AccessKeySecret
   */
  @ApiModelProperty("AccessKey Secret")
  private String accessKeySecret;

  /**
   * 主观评分满分值
   */
  @ApiModelProperty("主观评分满分值")
  private Long subjectiveRatingTotalValue;

  /**
   * 得分小数点规则
   */
  @ApiModelProperty("得分小数点规则")
  private Long scoreDecimalPoint;

  /**
   * 达成度小数点规则
   */
  @ApiModelProperty("达成度小数点规则")
  private Long degreeDecimalPoint;

  /**
   * 进度小数点规则
   */
  @ApiModelProperty("进度小数点规则")
  private Long progressDecimalPoint;

  /**
   * 小数点规则
   */
  @ApiModelProperty("小数点规则")
  private Long decimalPointRules;

  /**
   * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
   */
  @ApiModelProperty("小数最后一位规则")
  private String decimalDigitsLastRules;

  /**
   * 主观评分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
   */
  @ApiModelProperty("主观评分单位")
  private String subjectiveMarkUnit;

  /**
   * 汇报管理模式 PROGRESS_MODEL:进度模式 DEGREE_MODEL:达成度模式 MIXED_MODEL:混合模式
   */
  @ApiModelProperty("汇报管理模式")
  private String reportManagementModel;

  /**
   * 无实际值指标是否开启进度汇报 TRUE:是 FALSE:否
   */
  @ApiModelProperty("无实际值指标是否开启进度汇报")
  private String noPracticalValueObjIsProgReport;

  /**
   * 汇报类型 ARTIFICIAL_REPORT:人工汇报 SEMIAUTOMATIC_REPORT:半自动汇报 AUTO_REPORT:全自动汇报
   */
  @ApiModelProperty("汇报类型")
  private String reportType;

  /**
   * 是否开启预算汇报 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启预算汇报")
  private String isOpenBudgetReport;

  /**
   * 是否开启自定义汇报 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启自定义汇报")
  private String isOpenCustomReport;

  /**
   * 主观评分满分值单位
   */
  @ApiModelProperty("主观评分满分值单位")
  private String subjectiveRatingTotalValueUnit;

  /**
   * 主观得分小数点规则
   */
  @ApiModelProperty("主观得分小数点规则")
  private Long subjectiveScorePoint;

  /**
   * 数量增长型实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("数量增长型实际值计算类型")
  private String numGroActualUfuncType;

  /**
   * 数量增长型上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("数量增长型上级指标计算类型")
  private String numGroSuperiorTargetUfuncType;

  /**
   * 百分比增长型实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("百分比增长型实际值计算类型")
  private String perGroActualUfuncType;

  /**
   * 百分比增长型上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("百分比增长型上级指标计算类型")
  private String perGroSuperiorTargetUfuncType;

  /**
   * 百分比降幅型实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("百分比降幅型实际值计算类型")
  private String perDecActualUfuncType;

  /**
   * 百分比降幅型上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("百分比降幅型上级指标计算类型")
  private String perDecSuperiorTargetUfuncType;

  /**
   * 比率增长型实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("比率增长型实际值计算类型")
  private String ratioGroActualUfuncType;

  /**
   * 比率增长型上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("比率增长型上级指标计算类型")
  private String ratioGroSuperiorTargetUfuncType;

  /**
   * 比率降幅型实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("比率降幅型实际值计算类型")
  private String ratioDecActualUfuncType;

  /**
   * 比率降幅型上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("比率降幅型上级指标计算类型")
  private String ratioDecSuperiorTargetUfuncType;

  /**
   * 进度型实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("进度型实际值计算类型")
  private String progressActualUfuncType;

  /**
   * 进度型上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("进度型上级指标计算类型")
  private String progressSuperiorTargetUfuncType;

  /**
   * 数量降幅型实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("数量降幅型实际值计算类型")
  private String numDecActualUfuncType;

  /**
   * 数量降幅型上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("数量降幅型上级指标计算类型")
  private String numDecSuperiorTargetUfuncType;

  /**
   * 主观定性实际值计算类型 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值 MANUAL_FILLING:人工填报
   */
  @ApiModelProperty("主观定性实际值计算类型")
  private String subQuaActualUfuncType;

  /**
   * 主观定性上级指标计算类型 SUMMARIZE:下级指标累计相加值 MANUAL_FILLING:自身直接录入实际值 SUM_OF_MULTI_ACT_AND_WEI:实际值乘以权重再累计相加值 LAST_OF_SUBORDINATE:取下级指标最后值 MAX_OF_SUBORDINATE:取下级指标最高值 MIN_OF_SUBORDINATE:取下级指标最低值 AVG_OF_SUBORDINATE:取下级指标平均值 SPEC_AVG_OF_SUBORDINATE:去除最大最小取下级平均值
   */
  @ApiModelProperty("主观定性上级指标计算类型")
  private String subQuaSuperiorTargetUfuncType;

  /**
   * 当前主观得分权重
   */
  @ApiModelProperty("当前主观得分权重")
  private String curSubjectiveScoreWeight;

  /**
   * 过程主观得分权重
   */
  @ApiModelProperty("过程主观得分权重")
  private String processSubjectiveScoreWeight;

  /**
   * 不规则周期类型
   */
  @ApiModelProperty("不规则周期类型")
  private String irregularCycleType;

  /**
   * 权重分小数点规则
   */
  @ApiModelProperty("权重分小数点规则   ")
  private String weightDecimalPoint;

  /**
   * 权重小数点规则
   */
  @ApiModelProperty("权重小数点规则")
  private String weightPoint;

  /**
   * 末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周 DISABLE:不启用
   */
  @ApiModelProperty("末级周期类型")
  private String lastCycleType;

  /**
   * 实际得分公式 QUANTIZED_SCORE_FORMULA:主客观全维度计算公式
   */
  @ApiModelProperty("实际得分公式")
  private String actualScoreFormula;

  /**
   * 目标分类目标得分是否开启本级得分 TRUE:是 FALSE:否
   */
  @ApiModelProperty("目标分类目标得分是否开启本级得分")
  private String actualScoreIsOpenLocalLevelScore;

  /**
   * 增降幅小数点规则
   */
  @ApiModelProperty("增降幅小数点规则")
  private String increasesDropDecimalPoint;

  /**
   * 实际值小数点规则
   */
  @ApiModelProperty("实际值小数点规则")
  private Long actualValueDecimalPoint;

  /**
   * 是否启用Websocket TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否启用Websocket")
  private String isUseWebsocket;

  /**
   * webSocket后端调用地址
   */
  @ApiModelProperty("webSocket后端调用地址")
  private String websocketAddress;

  /**
   * webSocket后端调用端口
   */
  @ApiModelProperty("webSocket后端调用端口")
  private String websocketPort;

  /**
   * webSocket后端调用协议
   */
  @ApiModelProperty("webSocket后端调用协议")
  private String websocketAgreement;

  /**
   * webSocket前端调用地址
   */
  @ApiModelProperty("webSocket前端调用地址")
  private String websocketAddressFront;

  /**
   * webSocket前端调用端口
   */
  @ApiModelProperty("webSocket前端调用端口")
  private String websocketPortFront;

  /**
   * webSocket前端调用协议
   */
  @ApiModelProperty("webSocket前端调用协议")
  private String websocketAgreementFront;

  /**
   * websocket服务访问账号
   */
  @ApiModelProperty("websocket服务访问账号")
  private String websocketUserId;

  /**
   * websocket服务访问密码
   */
  @ApiModelProperty("websocket服务访问密码")
  private String websocketUserPassword;

  /**
   * 预算层级 PLAN_BUDGET:预算在规划 PRIMARY_CON_TASK_BUDGET:一级建设任务 LAST_CON_TASK_BUDGET:末级建设任务 ONE_LEVEL_OBSERVATION_POINT_BUDGET:一级观测点预算 LAST_LEVEL_OBSERVATION_POINT_BUDGET:末级观测点预算
   */
  @ApiModelProperty("预算层级")
  private String budgetHierarchy;

  /**
   * 预算费用汇报层级
   */
  @ApiModelProperty("预算费用汇报层级")
  private String budgetReportHierarchy;

  /**
   * 是否启用预算 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否启用预算")
  private String isOpenBudget;

  /**
   * 积分账户单位
   */
  @ApiModelProperty("积分账户单位")
  private String pointsAccountUnit;

  /**
   * 是否开启资金到账 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启资金到账")
  private String isOpenFundsArrival;

  /**
   * 是否允许预算超支 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否允许预算超支")
  private String isAllowBudgetOverruns;

  /**
   * 启用的资金科目类型
   */
  @ApiModelProperty("启用的资金科目类型")
  private String useAccountSubjectType;

  /**
   * 更新周期类型标识
   */
  @ApiModelProperty("更新周期类型标识")
  private String updateCycleTypeCode;

  /**
   * 工作周期类型标识
   */
  @ApiModelProperty("工作周期类型标识")
  private String workCycleTypeCode;

  /**
   * 是否租户周期 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否租户周期")
  private String isTenementCycle;

}
